package controller;

import entity.Adesione;
import entity.UtenteRegistrato;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import sbForEntityClasses.AdesioneFacadeLocal;
import sbForEntityClasses.FeedbackFacadeLocal;

/**
 * Metodi per lasciare il feedback
 * @author Ale
 */
@Stateless
public class ControllerFeedback implements ControllerFeedbackLocal {
    @EJB
    private AdesioneFacadeLocal adesioneFacade;
    @EJB
    private FeedbackFacadeLocal feedbackFacade;

    /**
     * Lascia un feedback a un iscritto a un annuncio
     * @param adesione adesione che lega un annuncio al suo iscritto
     * @param star valore del feedback [0-5]
     */
    @Override
    public void lasciaFeedbackIscritto(Adesione adesione, int star) {
        UtenteRegistrato iscritto = adesione.getIscritto();
        feedbackFacade.lasciaFeedbackIscritto(iscritto.getFeedback(), star);
        adesione.setLasciatoFeedbackPerIscritto(true);
        adesioneFacade.edit(adesione);
    }

    /**
     * Lascia un feedback al creatore di un annuncio
     * @param adesione adesione che lega un annuncio all'iscritto che sta lasciando il feedback
     * @param star valore del feedback [0-5]
     */
    @Override
    public void lasciaFeedbackCreatore(Adesione adesione, int star) {
        UtenteRegistrato creatore = adesione.getAnnuncio().getCreatoreAnnuncio();
        feedbackFacade.lasciaFeedbackCreatore(creatore.getFeedback(), star);
        adesione.setLasciatoFeedbackPerCreatore(true);
        adesioneFacade.edit(adesione);
    }
    
}
